package com.dingding.manager.modules.order.dao;

import java.util.List;
import java.util.Map;

import com.dingding.manager.common.beans.order.SpecialOrderComment;
import com.dingding.manager.common.beans.order.UserOrder;
import com.dingding.manager.common.beans.order.UserSpecialOrder;
import com.dingding.manager.common.beans.order.UserSpecialOrdert;
import com.dingding.manager.common.beans.order.UserTaxiOrdert;
import com.dingding.manager.common.dao.Page;
import com.dingding.manager.modules.order.dto.ResOrderListDTO;
import com.dingding.manager.modules.order.enums.OrderStatus;

/**
 * 
 * @ClassName: IOrderDao 
 * @Description: TODO
 * @author hufan
 * @date 2016年12月7日 下午4:41:10 
 *
 */
public interface IOrderDao {

	/**
	 * @param string 
	 * 
	 * @Title: getResOrderDTOListByPage 
	 * @Description: 分页查询订单相关信息
	 * @param driverIds 司机ids
	 * @param orderStatus 订单状态 
	 * @param startTime 起始日期
	 * @param endDate 结束日期
	 * @param start 起始下标
	 * @param length 每页展示size
	 * @return  参数说明 
	 * @return Page<ResOrderDTO>    返回类型 
	 * @author hufan
	 * @throws
	 */
	public Page<ResOrderListDTO> getResOrderDTOListByPage(List<String> driverIds,OrderStatus orderStatus,String startTime,String endDate,int start,int length, String address);
	
	
	//public Page<ResOrderListDTO> getResOrderDTOListByMethod2(); 
	/**
	 * 
	 * @Title: getUserOrderByOrderId 
	 * @Description: 根据订单id查询UserOrder订单
	 * @param orderId  订单id
	 * @return UserOrder    返回类型 
	 * @author hufan
	 * @throws
	 */
	public UserOrder getUserOrderByOrderId(String orderId);
	
	/**
	 * 
	 * @Title: getUserSpecialOrdertByOrderId 
	 * @Description: 根据订单id查询UserSpecialOrdert订单
	 * @param 参数说明 
	 * @author hufan
	 * @return UserSpecialOrdert    返回类型 
	 * @throws
	 */
	public UserSpecialOrdert getUserSpecialOrdertByOrderId(String orderId);
	
	/**
	 * 
	 * @Title: getUserSpecialOrderByOrderId 
	 * @Description: 根据订单id查询UserSpecialOrder订单
	 * @param orderId
	 * @author hufan
	 * @param  参数说明 
	 * @return UserSpecialOrder    返回类型 
	 * @throws
	 */
	public UserSpecialOrder getUserSpecialOrderByOrderId(String orderId);
	
	/**
	 * 
	 * @Title: getUserTaxiOrdertByOrderId 
	 * @Description: 根据订单id查询UserTaxiOrdert订单
	 * @param orderId
	 * @author hufan
	 * @param   参数说明 
	 * @return UserTaxiOrdert    返回类型 
	 * @throws
	 */
	public UserTaxiOrdert getUserTaxiOrdertByOrderId(String orderId);
	
	/**
	 * 
	 * @Title: getSpecialOrderCommentByOrderId 
	 * @Description: 根据订单id查询
	 * @param orderId
	 * @author hufan
	 * @param @return  参数说明 
	 * @return SpecialOrderComment    返回类型 
	 * @throws
	 */
	public SpecialOrderComment getSpecialOrderCommentByOrderId(String orderId);
	
	
	/**
	 * 
	 * @Title: getOrderOtherInfoByDriverId 
	 * @Description: 根据司机id查询该笔订单的额外信息
	 * @param @param driverId
	 * @author hufan
	 * @param @return  参数说明 
	 * @return Map<String,Object>    返回类型 
	 * @throws
	 */
	public Map<String, Object> getOrderOtherInfoByDriverId(String driverId);
}
